import axios from 'axios';
import { Message } from 'element-ui';
import { getToKen, getUserName } from '../utils/app';

const BASEURL = process.env.NODE_ENV === 'production' ? '' : '/devApi';

//定义拦截器,创建一个实例
//这里使用手把手撸码前端API http://www.web-jshtml.cn/productApi
const service = axios.create({
    baseURL: BASEURL,   //http://192.168.0.106:8080/api  ==  "http://www.web-jshtml.cn/productApi",
    timeout: 15000,
    });

// 添加请求拦截器,请求接口前，做一些数据处理（请求拦截器）
service.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 后台需要前端这边传相关的参数（在请求头添加参数）
    // Tokey
    // userId
    // sui
    // 业务需求
    // 最终目地不是在请求头添加参数
    // console.log(config.headers)
    config.headers['ToKey'] = getToKen();
    config.headers['UserName']= getUserName();
    return config;
    }, function (error) {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 添加响应拦截器,请求接口后，返回数据拦截（响应拦截器）
service.interceptors.response.use(function (response) {
    //console.log(response)
    // 对响应数据做点什么
    let data = response.data
    // 业务需求
    if(data.resCode !== 0) {
        Message.error(data.message);
        return Promise.reject(data);
    }else{
        return response;
        // return Promise.resolve(data);
    }
    }, function (error) {
        // 对响应错误做点什么
        return Promise.reject(error);
    }
);

export default service;